import OSS from 'ali-oss';

/**
 * oss鉴权并上传文件
 * @param {*} config 
 * @param {*} file 
 * @param {*} url 
 * @returns 
 */

const headers = {
  // 指定Object的存储类型。
  'x-oss-storage-class': 'Standard',
  // 指定Object的访问权限。
  'x-oss-object-acl': 'private',
  // 通过文件URL访问文件时，指定以附件形式下载文件，下载后的文件名称定义为example.txt。
  'Content-Disposition': 'attachment; filename="example.txt"',
  // 设置Object的标签，可同时设置多个标签。
  'x-oss-tagging': 'Tag1=1&Tag2=2',
  // 指定PutObject操作时是否覆盖同名目标Object。此处设置为true，表示禁止覆盖同名Object。
  'x-oss-forbid-overwrite': 'true',
};

export const ossUpload = (config, file, url) => {
	console.log(config)
	console.log(file)
	console.log(url)
	const client = new OSS(config);
	return new Promise((resolve, reject) => {
		(async () => {
			try {
				const result = await client.put(url + new Date().getTime() + `.${file.path.split('.')[1]}`, file, { headers });
				if (result.res.status == 200) {
					resolve({ url: result.url, name: file.name, status: true });
				} else {
					resolve({ url: result.url, name: file.name, status: false });
				}
			} catch (e) {
				reject(e);
			}
		})();
	});
}
